home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-13 / amac44d.zip / TIMER14.QM < prev    next >
Text File  |  1992-05-27  |  27KB  |  621 lines

  1. *                           TIMER14.QM, v1.4d
  2. *                 Macros To Time QEdit Command Sequences
  3. *                        Written by Tom Hogshead
  4. *                                 6/1/92
  5. *  Key    Subfile      Standard Timing Techniques
  6. * =====  =========  =====================================================
  7. * @(1)    {e:\up\tim001}
  8. *                 --Times Macro Command Sequences For 1 To 100,000 Repeats
  9. *                   (Inserted) In @1 Using [Del_Ch] Timing Counter
  10. * @(2)    {e:\up\tim002}
  11. *                 --Times Macro Command Sequences For ONE Repeat Only
  12. *                   (Inserted_In) @2
  13. *
  14. *  Key    Subfile      Other Timing Techniques
  15. * =====  =========  =====================================================
  16. * @(q)    {e:\up\tim003}
  17. *                 --Times Macro Command Sequences For ONE Repeat Only,    |new
  18. *                   Simple, Quick And Foolproof!
  19. * @(r)    {e:\up\tim004}
  20. *                 --Times Macro Command Sequences For 1 To 100,000 Repeats|new
  21. *                   Using [Cursor_Right] Timing Counter
  22. * @(p)    {e:\up\tim005}
  23. *                 --Times Macro Command Sequences For 1 To 100,000 Repeats|new
  24. *                   Using [Command n] Timing Counter
  25. * @(n)    {e:\up\tim006}
  26. *                 --Makes Files Needed For @1/@p/@r
  27. * @(h)            --Jump to Index Item
  28. *
  29. *       Misc
  30. *      ------
  31. *      (Description)
  32. *      (Timing) Loop Description
  33. *      (Usage)
  34. *      (Base) Time For Your System, How To Measure
  35. *      (Comparison) of 6/29/91 (v1.1) and 7/7/91 (v1.2) Base Time
  36. *      (Example), "CursorRight CursorLeft" Timing
  37. *      (Other) Commands' Timing
  38. *      (Calculating) Run Time
  39. *      (Accuracy) / Repeatability
  40. *      (TSR) Interference
  41. *      (Requirements) For Timing Macro Command Sequences
  42. *      (Hardware)
  43. *      (Software)
  44. *      (Allocated) Memory Map
  45. *      (QCONFIG) Setup
  46. *
  47. *      (Locate) Macros and Index Items in File, How To Jump To
  48. *      (AMACxx).ZIP
  49. *      (Uploaded) sources for AMACxx
  50. *      (Problems) or suggestions?
  51. *
  52. *      (M) A C R O S
  53. *      (Version) History
  54. *
  55. *-- eoi
  56.  
  57. * 
  58. *  (Description)
  59. *  ---------------
  60.  
  61. *   TIMER14.QM are macros enabling the user to measure execution time
  62. *   of QEdit macro command sequences with unparalleled accuracy and
  63. *   versatility.  Timing macro commands provides the capability to
  64. *   optimize macros for speed. Relative speed of many commands are
  65. *   compared.  The number of repeats can be timed from 1 to 100,000 for
  66. *   different command sequences.
  67.  
  68. *   My conclusions are based only on the timing tests I conducted with
  69. *   specific command sequences. I am not attempting to make a
  70. *   determination of the absolute speed of QEdit. Although limited by
  71. *   my inability to measure any command's speed without some synergism
  72. *   with other commands and the testing system, I believe these
  73. *   conclusions, as they relate to speeds of specific command sequences
  74. *   timed, are accurate and valid in this necessarily limited context.
  75.  
  76. * 
  77. *  (Timing) Loop Description
  78. *   --------------------------
  79.  
  80. *   Macro @1 uses the following timing loop with Del_Ch as the timing
  81. *   mechanism or counter:
  82.  
  83. *           make block of characters = number of repeats up to 100,000
  84. *           InsertTime      (start time)
  85. *           TIME:
  86. *         < commands to time inserted here >
  87. *           Del_Ch
  88. *           jtrue TIME:
  89. *           cursorup
  90. *           jtrue TIME:
  91. *           InsertTime      (end time)
  92.  
  93. *   Command sequences to be timed are first inserted by the user into
  94. *   the macro timing loop just prior to Del_Ch. After compiling the
  95. *   macro with QMAC, the macro first makes and fills a block with 500
  96. *   characters / line until the total number of characters equals the
  97. *   user selected number of repeats (From 1 to 100,000 repeats).
  98.  
  99. *   Timing begins when the timing loop is entered. The cursor remains
  100. *   in column 1 deleting characters until Del_Ch tests false signifying
  101. *   the 500 characters in the last line of the block have been deleted.
  102. *   The macro then cursors up one line and begins deleting characters
  103. *   in that line starting in column 1. The timing loop continues until
  104. *   cursorup tests false indicating all characters in the block have
  105. *   been deleted, and timing ends.
  106.  
  107.  
  108. * 
  109. *  (Usage)
  110. *  ---------
  111.  
  112. *   To measure execution time of QEdit macro commands, the desired
  113. *   command sequences to time are first inserted by the user into a
  114. *   either @1 or @2.  The macro is then compiled using QMAC.
  115.  
  116. *   Macro time is then calculated in seconds by subtracting start time
  117. *   from end time as measured and reported by InsertTime. Time for
  118. *   the inserted command sequences is calculated by first subtracting
  119. *   "Base" time from "macro" time, and then dividing the resulting
  120. *   "commands" time by the number of user selected repeats. This gives
  121. *   a precise timing measurement significant to 0.000001 seconds for
  122. *   100,000 repeats. I was unable to come up with any other practical
  123. *   way to accurately time the many fast commands like cursorright,
  124. *   delch etc:
  125.  
  126. *       Macro Time      = End Time      - Start Time
  127.  
  128. *       Commands Time   = Macro Time    - Base Time
  129.  
  130. *       Commands Time   = End Time      - Start Time - Base Time
  131.  
  132. *       Commands Time/  = Commands Time / Number of Repeats
  133. *          Per Repeat
  134.  
  135. *   See Example for calculating time for [ cursorright cursorleft ].
  136.  
  137. * 
  138. *   Measuring (Base) Time For Your System
  139. *  ---------------------------------------
  140.  
  141. *       1.  Load a file for macro timing output.
  142.  
  143. *       2.  Read TIMER14.MAC:
  144.  
  145. *               <escape>
  146. *                MR
  147. *                TIMER14.MAC
  148. *               <enter>
  149.  
  150. *       3.  Run macro @1 without any inserted commands by pressing
  151. *           the Alternate key and 1 at the same time.
  152.  
  153. *       4.  At the first prompt, answer "Y <enter>", meaning the
  154. *           macro will cycle until Control Break Escape is pressed.
  155.  
  156. *       5.  At the second prompt, cursor down to the line beginning
  157. *           with "100k", meaning the macro will time 100,000 repeats,
  158. *           and press <enter>.
  159.  
  160. *       6.  After the macro runs for 10 cycles (010 in the last
  161. *           column of the output) press Control Break Escape.  Be
  162. *           patient, this will take some time (4 minutes per cycle on
  163. *           my machine).  You are now ready to calculate the macro
  164. *           "Base" time for your system. It is important to measure
  165. *           this accurately because "Base" Time is used in ALL
  166. *           subsequent timings:
  167.  
  168. *  Cycle number                   ──────────────────────────────────┐
  169. *  Number of repeats (k=1,000)    ─────────────────────────────┐    │
  170. *  Macro       ─────────────────────────────────────────────┐  │    │
  171. *  Date        ───────────────────────────────────────┐     │  │    │
  172. *  End time    ──────────────────────────────┐        │     │  │    │
  173. *  Start time  ───────────────────────┐      │        │     │  │    │
  174. *  End - Start ──────┐                │      │        │     │  │    │
  175. *                   252        * 16:58:40  02:52  06-23-91 @1 100k 010
  176. *                   252        * 16:54:25  58:37  06-23-91 @1 100k 009
  177. *                   252        * 16:50:09  54:21  06-23-91 @1 100k 008
  178. *                   252        * 16:45:53  50:05  06-23-91 @1 100k 007
  179. *                   251        * 16:41:38  45:49  06-23-91 @1 100k 006
  180. *                   252        * 16:37:22  41:34  06-23-91 @1 100k 005
  181. *                   251        * 16:33:07  37:18  06-23-91 @1 100k 004
  182. *                   252        * 16:28:51  33:03  06-23-91 @1 100k 003
  183. *                   251        * 16:24:36  28:47  06-23-91 @1 100k 002
  184. *                   252        * 16:20:20  24:32  06-23-91 @1 100k 001
  185. *                  -----
  186. *   Total     =    2517 seconds
  187.  
  188. *   Base Time =    2517 seconds for 1,000,000 repeats
  189.  
  190. *             =    0.002517      ( seconds / repeat )
  191.  
  192. *                           -- Base Time --
  193. *            # of Repeats     ( seconds )
  194. *           ==============  ===============
  195. *                 ½k              1.3
  196. *                 1k              2.5
  197. *                 5k             12.6
  198. *                10k             25.2
  199. *                25k             63.0
  200. *                50k            126.0
  201. *               100k            252.0
  202.  
  203. *   Base Time is proportional to the number of repeats, and may be
  204. *   calculated for different "number of repeats" from 100k Base Time.
  205.  
  206. *  (Comparison) of 6/29/91 (v1.1) and 7/7/91 (v1.2) Base Time
  207. *  ------------------------------------------------------------
  208. *
  209. *  Cycle number                   ──────────────────────────────────┐
  210. *  Number of repeats (k=1,000)    ─────────────────────────────┐    │
  211. *  Macro       ─────────────────────────────────────────────┐  │    │
  212. *  Date        ───────────────────────────────────────┐     │  │    │
  213. *  End time    ──────────────────────────────┐        │     │  │    │
  214. *  Start time  ───────────────────────┐      │        │     │  │    │
  215. *  End - Start ──────┐                │      │        │     │  │    │
  216. *                   252        * 00:57:56  02:08  07-08-91 @1 100k 010
  217. *                   252        * 00:53:38  57:50  07-08-91 @1 100k 009
  218. *                   252        * 00:49:20  53:32  07-08-91 @1 100k 008
  219. *                   252        * 00:45:02  49:14  07-08-91 @1 100k 007
  220.                     251        * 00:40:45  44:56  07-08-91 @1 100k 006
  221. *                   252        * 00:36:27  40:39  07-08-91 @1 100k 005
  222. *                   252        * 00:32:10  36:22  07-08-91 @1 100k 004
  223. *                   252        * 00:27:53  32:05  07-08-91 @1 100k 003
  224. *                   251        * 00:23:37  27:48  07-08-91 @1 100k 002
  225. *                   250        * 00:19:21  23:31  07-08-91 @1 100k 001
  226. *                  -----
  227. *   Total     =    2516 seconds
  228.  
  229. *   Base Time =    2516 seconds for 1,000,000 repeats, 7/7/91  version 1.2,
  230. *   compared to    2517 seconds for 1,000,000 repeats, 6/28/91 version 1.0. |
  231.  
  232. * 
  233. *  (Example), "CursorRight CursorLeft" Timing
  234. *  --------------------------------------------
  235. *   To measure execution time of "CursorRight CursorLeft":
  236.  
  237. *       1. Insert "CursorRight CursorLeft" in @1 as follows;
  238.  
  239. *                       TIME:
  240. *                       CursorRight CursorLeft  * <<<
  241. *                       Del_Ch
  242. *                       jtrue TIME:
  243.  
  244. *       2.  Compile using QMAC.
  245.  
  246. *       3.  Read TIMER14.MAC:
  247.  
  248. *               <escape>
  249. *                MR
  250. *                TIMER14.MAC
  251. *               <enter>
  252.  
  253. *       4.  Load desired file to record macro timing output.
  254.  
  255. *       5.  Execute @1 pressing Alternate key and 1 at the same time.
  256.  
  257. *       6.  At the first prompt, press <enter> for now. The macro will
  258. *           cycle once.  Alternatively, answering "Y", then <enter>,
  259. *           cycles the macro until Control Break Escape is pressed.
  260.  
  261. *       7.  At the second prompt, cursor down to the line beginning
  262. *           with "100k", meaning the macro will time 100,000 repeats
  263. *           of this command sequence, and press <enter>.
  264.  
  265. *       8.  Press Control Break Escape to stop cycling and begin
  266. *           calculations.
  267.  
  268. * 
  269. *  (Calculating) Run Time
  270. *  -----------------------
  271.                                 *******************************************
  272. *            Macro Output ==>   *  16:22:02  28:44  06-23-91 @1 100k 001  *
  273.                                 *******************************************
  274. *               6 x 60 = 360
  275. *                        +44
  276. *                       -----
  277. *                        404  start
  278. *                         -2  end
  279. *                       -----
  280. *                        402  Macro Time
  281. *                       -252  Base  Time, 100k repeats
  282. *                       -----
  283. *                        150  Net
  284.  
  285. *            "CursorRight CursorLeft" Timing
  286. *         ====================================
  287. *          Time ( seconds )         # Repeats
  288. *         ------------------       -----------
  289. *            150                     100,000
  290. *              1.50                    1,000
  291. *              0.00150                     1
  292.  
  293. * 
  294. *  (Other) Commands Timing
  295. *  -------------------------
  296. *   See TIMER.SUM for timing results of other command sequences.
  297.  
  298. * 
  299. *  (Accuracy) / Repeatability
  300. *  ----------------------------
  301. *   Accuracy, or repeatability, of calculated times (End Time minus
  302. *   Begin Time) is accurate to +/- 1 second.  Accuracy of calculated
  303. *   time per repeat may be determined as follows:
  304.  
  305. *               Accuracy = 1 / ( number of repeats)
  306.  
  307. *   For 100k repeats:
  308.  
  309. *               Accuracy = 1 / ( 100,000 ) = 0.000010 seconds
  310.  
  311. *  (TSR) Interference
  312. *  -------------------
  313. *   TSR's that interfere with timing should be removed. TSR's that do
  314. *   interfere with timing may only slow down results, but their effect
  315. *   should be consistent across tests. This effect can be seen by
  316. *   measuring my 100k Base Time with/without TSR's:
  317.  
  318. *                              Seconds       Norton
  319. *                 Setup       100k Base        SI
  320. *                ----------  -----------    --------
  321. *                 Standard        252         10.2
  322. *                 No TSR's        231         10.7
  323.  
  324. * 
  325. *  (Requirements) For Timing Macro Command Sequences With @1
  326. *  ----------------------------------------------------------
  327. *       - Commands must return cursor to the beginning of the counting
  328. *         line in file "0k" upon completion of each inserted command
  329. *         sequence.
  330.  
  331. *       - Commands must not add/delete any characters to/from
  332. *         counting line.
  333.  
  334. *       - Commands must not quit or reload any file unless QConfig is
  335. *         set to *not* close windows on quit.
  336.  
  337. *       - No TSR should access the disk or in any way effect timing.
  338.  
  339. * 
  340. *  (Hardware)
  341. *  ----------
  342. *       two Seagate 20 meg ST250 MFM hard drives, configured E: and F:
  343. *       5 1/4" 360k floppy, A:
  344. *       3 1/2" 720k floppy, B:
  345. *       Logix VGA card, 256k
  346. *       Magnavox VGA paper white monitor
  347. *       10 MHz XT clone with Everex 12 MHz Accelerator card
  348. *               Norton   v4.50   (SI)   =  10.2
  349. *                                (DI)   =   2.4
  350. *                                (PI)   =   7.6
  351. *               Landmark v2.00   (CPU)  =  10.73 MHz
  352. *                                (Video)= 520    chr/ms
  353. *       5 meg expanded memory using one AST Six Pack Plus and
  354. *         two AST Rampage Plus boards, LIM 4.0, 256k chips, 150 ns
  355.  
  356. * 
  357. *  (Software)
  358. *  ----------
  359. *       Buffers=7
  360. *       Files=25
  361. *       Break=off
  362. *       1 meg PcKwik ram disk, with 2 sub directories  C: and D:
  363. *       Software Carousel v5.00, three 509k partitions
  364. *       64k of high memory added to low ram with EEMRAM
  365. *       492,048 bytes free ram after adding 64k of expanded with EEMRAM
  366. *       PcKwik v3.52 with 1.3 meg hard disk cache
  367. *       Newkey v5.4
  368. *       PCED   v2.00(A4)
  369.  
  370. *   Other software used:
  371. *       QEdit  v2.10, ( 45,782, 9/6/90 )
  372. *       QMAC   v2.10, February 1990
  373. *       DOS    v3.3
  374.  
  375. *                          (Allocated) Memory Map
  376. * ======================================================================
  377. * MCB adr PSP adr  paras   bytes   owner        hooked vectors
  378. * ------- ------- ------- ------- ----------   -------------------------
  379. *  10d9    1002    003f     1008  (DOS)
  380. *  113b    113c    0014      320  SHFTLOCK.COM
  381. *  1172    1173    003e      992  ASTCLOCK.COM
  382. *  11ce    11cf    0021      528  DISKSHW2.COM
  383. *  1213    1214    036c    14016  SUPERPCK.COM
  384. *  159e    159f    01ad     6864  PCKSCRN.COM  29
  385. *  1769    176a    032a    12960  PCKSPL.COM   05 0f 17
  386. *  1ab1    1ab2    0016      352  NUMCLICK.COM
  387. *  1ae5    1ae6    0020      512  TIMEPARK.COM
  388. *  1b23    1b24    00d3     3376  HOTLINE.EXE
  389. *  1c14    1c15    0009      144  COLON.EXE
  390. *  1c61    1c62    0060     1536  STACKEY.COM
  391. *  1cdf    1ce0    0225     8784  QTSR.EXE     1c 2f
  392. *  1f05    1f23    80f9   528272  CAROUSEL.EXE 00 08 09 10 12 13 14
  393. *                                              15 16 1a 1b 21 27 28
  394. *                                              30 33 5c 61 66 67
  395.  
  396. * Allocated Memory Map - by TurboPower Software - Version 2.9
  397.  
  398. *  PSP  blks bytes owner    command line        chained vectors
  399. * ----- ---- ----- -------- ------------------- ------------------------
  400. * 22CE   1     144 config   j:\-A1
  401. * 22D8   2    4208 WATCH    TSR WATCHER         16 21 27
  402. * 23E6   2     880 CLICKER                      09
  403. * 241F   1    1024 SMAX                         13
  404. * 247E   1   18464 PCED 200 /X/B4000,100,260... 1B 21 61
  405. * 2901   1    5008 VSTACK   /A112;62;112
  406. * 2A3B   1    1056 SEND
  407. * 2A7E   1    1248 FL
  408. * 2ACD   1     608 CDIR 200 /X /D500
  409. * 2AF4   1     608 RAW      on                  21
  410. * 2B1B   2   39312 NEWKEY   N/A                 08 09 10 16 1B 28 66
  411. * 3498   2    5440 RUNSCOUT                     08 09 13 16 28
  412. * 35F3   1    7696 SETUP    u:\np10.pmf         09
  413. * 37D5   1     144 FMARK    j:\-end
  414. * 37DF   2  492048 free
  415.  
  416. *   block   bytes   (Expanded Memory)  Name
  417. *   -----   ------                     ----
  418. *       0   393216                     SYSTEM
  419. *       1    16384                     XPANDISK
  420. *       2  1425408                     SUPERPCK
  421. *       3    98304                     HOTLINE
  422. *       4   212992                     QEditTSR
  423. *       5    49152
  424. *       6  1458176                     CAROUSEL
  425. *       7    49152                     PCED 200
  426. *       8    32768                     CDIR 200
  427. *       9    65536                     EEMRAM
  428. *      10    49152                     NEWKEY
  429. *      11   163840                     SCOUT-EM
  430. *    free  1032192
  431. *   total  5046272
  432.  
  433. * 
  434. *  (QCONFIG) Setup
  435. * ----------------
  436. *   General
  437. *   ---------
  438. *   Test for presence of EGA or VGA adapters (Y/N)? [Y] : Y
  439. *   Test for presence of enhanced keyboard (Y/N)? [Y] : Y
  440. *   Swap to Expanded memory or DISK on the Dos and Shell commands
  441. *                                                          (Y/N)? [Y] : Y
  442. *   Drive for disk swapping on the Dos/Shell commands
  443. *                                          *=default-drive [A..Z] [J] : J
  444. *   Should QEdit change the cursor size (Y/N)? [Y] : Y
  445. *   Do you want a large flashing cursor (Y/N)? [N] : N
  446. *   Fast screen updating with flicker OK (CGA's only)(Y/N)? [N] : N
  447. *   Get num rows on screen from BIOS data area
  448. *                                        (100% IBM PC only)(Y/N)? [N] : N
  449. *   Number of rows on screen (NOT NEEDED with EGA/VGA) [25..255] [25] : 25
  450. *   Do you want the return command to split lines
  451. *                                            in insert mode (Y/N)? [Y] : Y
  452. *   Should Cut and Copy use current line if no block marked (Y/N)? [Y] : Y
  453. *   Amount of memory to reserve from DOS
  454. *                                    (in paragraphs) [0,8..32767]  [0] : 0
  455. *   Code generated by ALT numeric keypad [0..255] [0] : 0
  456. *   Do you want the ESCAPE command to invoke the menus (Y/N)? [Y] : Y
  457. *   Should the editor restore the starting drive/dir
  458. *                                          on program exit (Y/N)? [Y] : Y
  459. *   Should the editor change the DOS PROMPT during a shell (Y/N)? [Y] : Y
  460. *   Should [TabRt]/[TabLt] be allowed to shift
  461. *                                          an entire block (Y/N)? [Y] : Y
  462.  
  463.  
  464. *   Advanced
  465. *   --------
  466. *   Do you want the del_ch command to join lines if at EOL (Y/N)? [N] : N
  467. *   Should PQuit, Exit and File return to the edit
  468. *                                              file prompt (Y/N)? [N] : N
  469. *   Do you want the editor to start in wordwrap mode (Y/N)? [Y] : Y
  470. *   Default right margin for wordwrap [1..500]  [80] : 80
  471. *   Do you want the editor to start in insertmode (Y/N)? [Y] : Y
  472. *   Do you want the editor to start in autoindent mode (Y/N)? [Y] : Y
  473. *   Do you want the editor to use sticky autoindent (Y/N)? [N] : N
  474. *   Load wildcarded filespecs from the command line (Y/N)? [Y] : Y
  475. *   Load wildcarded filespecs from inside the editor (Y/N)? [Y] : Y
  476. *   Do you want the editor to start in enter matching mode (Y/N)? [N] : N
  477. *   Use CMODE for .c, .cpp, .cxx, .h, .hpp, and .hxx files (Y/N)? [Y] : Y
  478. *   Default number of deleted lines to keep per file [0..300] [100] : 100
  479. *   Remove trailing blanks from edited lines (Y/N)? [Y] : Y
  480. *   Delete white space after words with del_rt_word command (Y/N)? [Y] : Y
  481. *   Terminate files with a Control Z (Y/N)? [N] : N
  482. *   Do you want backups of saved files (Y/N)? [Y] : Y
  483. *   Prompt for filename on open window (Y/N)? [N] : N
  484. *   Close window when a file is quit (Y/N)? [Y] : Y
  485. *   Display End Of File marker (Y/N)? [Y] : Y
  486. *   Insert line blocks ABOVE the cursor line (Y/N)? [Y] : Y
  487. *   Do you want a beep on warning messages and
  488. *                                           missed searches (Y/N)? [N] : N
  489. *   Default Find options [IWBG]  [I] : I
  490. *   Default Find_Replace options [IWBNG]  [I] : I
  491. *   Default file extension number 1 [.bat] : .bat
  492. *   Default file extension number 2 [.qm] : .qm
  493. *   Default file extension number 3 [.doc] : .doc
  494. *   Default file extension number 4 [.inf] : .inf
  495. *   Default file extension number 5 [.lst] : .lst
  496. *   Default file extension number 6 [.let] : .let
  497.  
  498. * 
  499. *  (AMACxx).ZIP Sources
  500. *   --------------------
  501. *   AMACxx.ZIP is a collection of QEdit  macros I have put together. Many
  502. *   I   have   written,  and  John   Goodman  has   recently  contributed
  503. *   extensively to this  effort.  As of this  writing, the latest version
  504. *   is xx=38 with new macros and subsequent changes in  AMAC-x.ZIP(x = K)
  505. *   Program files used with these  macros are in AMAC-PRG.ZIP. AMACxx.ZIP
  506. *   is (uploaded) to   CompuServe IBMAPP Lib  0  (Lib 1  after 30 days in
  507. *   Lib 0), Exec-PC  (414-789-4210), and SemWare  (404-641-8968). All are
  508. *   PC "Pursuitable" except CompuServe.
  509.  
  510. * 
  511. *  (Problems) or suggestions?
  512. *   --------------------------
  513. *   Any problems  or suggestion,  I would like to  hear from  you.  I can
  514. *   be reached daily on  either SemWare,  Exec-PC  or  NewWare.   I check
  515. *   CompuServe only once a month.  I will also try to include your useful
  516. *   macros in AMAC  if you send them to me.  Hope you  find some of these
  517. *   macros useful.  I have enjoyed writing them.  Thanks.
  518.  
  519. *   Tom Hogshead
  520.  
  521. *  (Locate) Macros and Index Items in File, How To Jump To
  522. * ---------------------------------------------------------
  523. *   See BOOKxx.QM for how to locate items in Index.
  524.  
  525. * 
  526.                               (M) A C R O S
  527. * ========================================================================
  528.  
  529. * 
  530. * -------------------------------------------------------------------------
  531. * @(1)  Times Macro Command Sequences For 1 To 100,000 Repeats
  532. * -------------------------------------------------------------------------
  533. * See tim001.QM for macro.  Use @f to jump to macro.
  534.  
  535.  
  536. * 
  537. * ----------------------------------------------------------------------
  538. * @(2) Measures Running Time of Macro Command Sequences, ONE Repeat Only
  539. * ----------------------------------------------------------------------
  540. * See tim002.QM for macro.  Use @f to jump to macro.
  541.  
  542.  
  543. * 
  544. * ----------------------------------------------------------------------
  545. * @(q)  Times Macro Command Sequences For ONE Repeat Only,
  546. *       Simple and Quick!
  547. * ----------------------------------------------------------------------
  548. * See tim003.QM for macro.  Use @f to jump to macro.
  549.  
  550.  
  551. * 
  552. * -------------------------------------------------------------------------
  553. * @(r)  Times Macro Command Sequences For 1 To 100,000 Repeats
  554. * -------------------------------------------------------------------------
  555. * See tim004.QM for macro.  Use @f to jump to macro.
  556.  
  557. * 
  558. * -------------------------------------------------------------------------
  559. * @(p)  Times Macro Command Sequences For 1 To 100,000 Repeats
  560. *       Using [command n] Timing Counter
  561. * -------------------------------------------------------------------------
  562. * See tim005.QM for macro.  Use @f to jump to macro.
  563.  
  564.  
  565. * 
  566. * ----------------------------------------------------------------------
  567. * @(n) Makes Files: Sequential Line Number File (001-999),  < $line#  >
  568. *                 : Zero Length File for Counting,          < 0k      >
  569. *                 : File to Select Number of Repeats/Cycle, < $repeat >
  570. * ----------------------------------------------------------------------
  571. * See tim006.QM for macro.  Use @f to jump to macro.
  572.  
  573. * 
  574. * ----------------------------------------------------------------------
  575. * @(h) Finds First Word On Cursor Line Marked In File Below
  576. * ----------------------------------------------------------------------
  577. * Press @ and h at the same time.  Cursor down to desired line in
  578. * Index.  Press <enter> to locate the desired item from the Index.
  579. * See BOOKxx.QM in AMACxx.Zip for more discussion.
  580.  
  581. @h      macrobegin begfile unmarkblock markline markline
  582.         pause
  583.         wordright markword copy endpara
  584.         find "(" paste ")"  return return
  585.         begline
  586. *
  587. * 22 bytes Tue  04-09-1991  16:23:53
  588.  
  589. * 
  590. *  (Version) History
  591. *   --------------------------------------------------------------------
  592. *   June 29, 1991     1.0  - Initial, named  TIME10.QM
  593. *   July 2, 1991      1.1  - Changed name to TIMER, minor documentation
  594. *                            changes, added @n.  First release of TIMERxx.ZIP.
  595. *   July 7, 1991      1.2  - Added timing loop description to documentation.
  596. *                          - Moved makectrofscreen in @h down.
  597. *                          - Changed ONE_CYCLE: to ONE_REPEAT: in @1.
  598. *                          - Removed extra space from "@1 " in @1.
  599. *                          - Added insertline to @2.
  600. *                          - Added 1/5/50/100 repeats to @1 and @n.
  601. *                          - Changes in this version do not affect timing.
  602. *   July 8, 1991      1.3  - Corrected documentation.
  603. *   July 11, 1991     1.3a - Added latest version of @h.
  604. *   July 14, 1991     1.3b - Added other timing techniques @p and @r.
  605. *   July 19, 1991     1.3c - Added @q for simple, quick and foolproof timing
  606. *                            one repeat.
  607. *   July 21, 1991     1.4  - Made macros separate files tim001...tim006.
  608. *                          - Replaced @h with @f.
  609. *                           -Included v1.4 in AMAC39.ZIP.
  610. *   July 27, 1991     1.4a - Minor Documentation changes.
  611. *                          - Removed @f.  Now in BOOKxx.QM only.
  612. *                          - Included v1.4a in AMAC40.ZIP.
  613. *   August 15, 1991   1.4b - Removed @f once again.
  614. *   February 15, 1992 1.4c - Modifed @1 in tim001.qm in case file not $line#.
  615. *   June 1, 1992      1.4d - Added @h.
  616. *
  617. *
  618. *
  619. *
  620. *--eof
  621.